package cn.shutdown.farm.dao.impl;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;

import cn.shutdown.farm.dao.PlantDao;
import cn.shutdown.farm.model.Plant;

//@Repository
public class PlantDaoImpl extends HibernateDaoSupport implements PlantDao {

	@Autowired
	private SessionFactory sessionFactory;

	/**
	 * 根据id查找植物
	 * 
	 * @param id
	 *            需要查找的植物id
	 */
	public Plant get(int id) {
		return (Plant) getHibernateTemplate().get(Plant.class, id);
	}

	/**
	 * 增加植物
	 * 
	 * @param Plant
	 *            需要增加的植物
	 */
	public void save(Plant Plant) {
		getHibernateTemplate().save(Plant);
	}

	/**
	 * 修改植物
	 * 
	 * @param Plant
	 *            需要修改的植物
	 */
	public void update(Plant Plant) {
		getHibernateTemplate().saveOrUpdate(Plant);
	}

	/**
	 * 删除植物
	 * 
	 * @param id
	 *            需要删除的植物id
	 */
	public void delete(int id) {
		getHibernateTemplate().delete(
				getHibernateTemplate().get(Plant.class, id));
	}

	/**
	 * 删除植物
	 * 
	 * @param Plant
	 *            需要删除的植物
	 */
	public void delete(Plant Plant) {
		getHibernateTemplate().delete(Plant);
	}

	/**
	 * 查询全部植物
	 * 
	 * @return 获得全部植物
	 */
	public List<Plant> findAll() {
		return (List<Plant>) getHibernateTemplate().find("from Plant");
	}

}
